package main

/*
	go的基本数据类型
		bool
		string
		int int8 int16 int32 int64
		uint uint8 uint16 uint32 uint64
		byte	//uint8的别名
		rune	//int32的别名，代表一个unicode
		float32
		float64
		complex64
		complex128

	零值是：变量定义后的初始值为零值
		0
		false
		""

	类型转换：T(v)
		举例：
		var i int = 42
		var f float64 = float64(i)
		var u uint = uint(f)

	常量：const，常量不能使用:=定义
		const PI = 3.14


*/

import (
	"fmt"
	"math"
	"math/rand"
)

//var定义了一个变量的列表，类型在后面，如下bool是类型
var c, python, java bool

//定义两个int变量i,j ，并且赋值1，2
var i, j int = 1, 2

func main() {
	//:=，是短声明变量，只能在函数内
	k := 3
	fmt.Println(k)

	fmt.Println("My favorite number is", rand.Intn(10))
	fmt.Println("Now you have %g problems.", math.Sqrt(7))
	fmt.Println(math.Pi)
	fmt.Println(add(3, 2))
	fmt.Println(swap("Jange", "Emily"))
}

func add(x int, y int) int {
	return x + y
}

//x,y参数因为都是int，所以可以省略一起写，如下
func add1(x, y int) int {
	return x + y
}

//函数可以返回任意数量的返回值
func swap(x, y string) (string, string) {
	return y, x
}
